package se.webbzon.boltzmann.game.event;

import se.webbzon.boltzmann.timer.Timer;
import se.webbzon.boltzmann.timer.TimerListener;
import se.webbzon.oschi01.worldarea.WorldArea;

public class SleepEvent extends AbstractGameEvent {

	/*============================================================
	Constructors
	============================================================*/
	
	/** Creates a new sleep game event. **/
	public SleepEvent(String[] arguments) {
		super(arguments);
	}
	
	/*============================================================
	Public Methods
	============================================================*/

	@Override protected void onBegin(WorldArea world) {
		int t = 0;
		if (arguments() > 0) try {
			t = Integer.parseInt(getArgument(0));
		} catch (NumberFormatException e) {
			exception("Argument exception.");
		} else
			exception("Argument exception.");
		
		Timer timer = new Timer(t);
		timer.addListener(new TimerListenerImpl());
		timer.start(world);
	}

	@Override protected void onEnd() {};
	
	/*============================================================
	Private Classes
	============================================================*/
	
	private final class TimerListenerImpl implements TimerListener {

		@Override public void onAlarm(Timer timer) {
			end();
		}
		
	}

}
